package com.pioneer.web.purchase.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pioneer.web.purchase.domain.PurPlan;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * IPurPlanService
 *
 * @author hlm
 * @date 2025-03-25 09:08:11
 */
public interface IPurPlanService extends IService<PurPlan> {

    /**
     * 查询采购计划详情
     * @param planId 采购计划ID
     * @return 结果
     */
    PurPlan selectPlanById(Long planId);

    /**
     * 新增采购计划
     * @param plan 采购计划
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    int addPlan(PurPlan plan);

    /**
     * 修改采购计划
     * @param plan 采购计划
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    int editPlan(PurPlan plan);

    /**
     * 删除采购计划
     * @param list 采购计划集合
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean deletePlans(List<Long> list);

    /**
     * 提交采购计划
     * @param plan 采购计划
     * @return 结果
     */
    boolean commitPlan(PurPlan plan);

    /**
     * 撤回采购计划
     * @param plan 采购计划
     * @return 结果
     */
    boolean recallPlan(PurPlan plan);

    /**
     * 审批采购计划
     * @param plan 采购计划
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean approvePlan(PurPlan plan);

    /**
     * 弃审采购计划
     * @param plan 采购计划
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean unapprovePlan(PurPlan plan);
}
